Text editor applications, such as Emacs, are used by developers to write source code. Emacs include a “Tags” indexing function that is used to map symbols (e.g., function names, global variables, typedefs, defines) to their definitions within source code files where they are defined. The mappings are listed in a TAGS file where each entry in the TAG file includes the name of a tag (i.e., a symbol), the name of the file where the tag is defined, and the position in the file that where the definition of the tag is located.
Users search for definitions of tags by entering a command to search the TAGS file. When a match is located in the TAGS file, the tag definition information is used to determine the file where the definition of the tag is provided and the approximate character position of the definition in the file. A cursor is moved to the approximate character position, and the file is searched for the tag definition.
Where there is a large code base, potentially multiple results can be returned for a given search. Developers must sift through the results to select the appropriate file location for a tag definition. As the code base grows, an increasingly larger number of results are returned.